<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			//1.构造函数
			function User(ming,mi){
				this.name = ming;
				this.pas = mi;
			}
			//2.创建一个用户张三，密码为123456       
			var U1 = new User("张三","123456");  //实例化对象
			var U2 = new User("张二","123456"); 
			var U3 = new User("张一","1234jhjh56"); 
			console.log(U1);
			console.log(U2);
			console.log(U3);
			
			//3.每个构造函数都有一个原型属性,它指向一个对象，我们把它称之为原型对象
			console.log(User.prototype);
			
			//4.将实例化对象共有的属性,方法放在原型对象上  避免函数重复浪费资源（用途）
			User.prototype.sex = "女性";
			User.prototype.say = function(){
				console.log(this.name + this.pas + this.sex);
			}
			
			//优化：
			User.prototype = {
				sex:"女性",
				say:function(){
					console.log(this.name + this.pas + this.sex);
				}
			}

			//alert(U1.sex);//实例化对象可以访问构造函数上的属性和方法，也可以访问原型上的属性和方法
		    U2.say();//实例化对象可以从原型对象上来继承方法和属性
		    U2.sex=
		    //5.原型链：实例化对象和原型对象之间的关系，没有原型则不存在原型链
		    
		    
		    
		</script>
	</head>
	<body>
	</body>
</html>
